package collection02;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
*  Iterator iterator()
*         从集合中获取一个迭代器对象，这个迭代器专门用来遍历集合中的元素
*
* Iterator接口中的方法：
* boolean hasNext()
*          判断集合中是否有遍历的元素，如果有，hasNext()返回true，如果集合中没有遍历的元素就返回false
*  E next()
*         取出当前的遍历的元素，并返回该元素
*
*
* Iterator iterator = c.iterator(); // 这个方法底层肯定是返回Iterator接口的实现类对象(多态)
*                                   // 实现类对象给父接口引用   Iterator是一个接口，不能通过new来创建对象
*   有Iterator对象后，就能调用Iterator接口里的方法( hasNext() next())
*
* 相当于：
* interface A{
*   void eat();
* }
* class B implements A{
*   void eat(){
*   };
* }
*  如果想调用A接口里的eat()方法,必须new创建一个B类对象，来实现A接口，最后去调用A接口里的eat()方法
* */
public class CollectionDemo01 {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("李雷");
        c.add("韩梅梅");
        c.add("李宁");


        for(Iterator iterator = c.iterator();iterator.hasNext();){
            System.out.println(iterator.next());
        }
        /* for(int i = 0; i<=10 ; i++){
              sout.i
          }

         for(Iterator iterator = c.iterator();iterator.hasNext();)
             System.out.println(iterator.next());
         1.Iterator iterator = c.iterator(); 获取一个迭代器  ==  int i = 0
         2.iterator.hasNext(); 判断元素  == i<= 10 ;
         3. System.out.println(iterator.next()); 输出元素 ==  sout.i
         */

        // 李雷
        //韩梅梅
        //李宁

        /*// 1.获取一个迭代器对象
        Iterator iterator = c.iterator(); // 这个方法底层肯定是返回Iterator接口的实现类对象(对象)
        Collection c = new ArrayList();
        c.add("李雷");
        c.add("韩梅梅");
        c.add("李宁");


        while(判断当前遍历元素是否存在){
            取出集合中的元素
        }

        while(iterator.hasNext()){ // 如果hasNext()返回true,代表当前有待遍历的元素，如果返回false,没有要遍历的元素
            System.out.println(iterator.next());
        }
        // 李雷
        //韩梅梅
        //李宁*/

    }
}


